package com.authine.cloudpivot.ext.dto.query;

import com.authine.cloudpivot.ext.enums.report.ReportType;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.experimental.SuperBuilder;

import java.time.LocalDateTime;
import java.util.Collection;
import java.util.Date;
import java.util.List;

@Data
@SuperBuilder
@NoArgsConstructor
@Accessors(chain = true)
@Schema(description = "财务报表导出条件")
public class FinanceReportQuery {

    /**
     * 客户名称
     */
    @Schema(description = "客户名称")
    private String customerName;
    /**
     * 客户父组织名称
     */
    @Schema(description = "客户父组织名称")
    private String customerParentName;
    /**
     * 项目负责人
     */
    @Schema(description = "项目负责人")
    private String principal;
    /**
     * 驻场人员
     */
    @Schema(description = "驻场人员")
    private String residentName;
    /**
     * 发票号码
     */
    @Schema(description = "发票号码")
    private String number;

    /**
     * 开始日期
     */
    @Schema(description = "开始日期")
    private Date startDate;
    /**
     * 截止日期
     */
    @Schema(description = "截止日期")
    private Date endDate;
    /**
     * 相对平台目标组织ID
     */
    @Schema(description = "相对平台目标组织ID")
    private Collection<String> organizationIds;
    /**
     * 采购组织ID
     */
    @Schema(description = "采购组织ID")
    private String purchaseOrganizationIds;
    /**
     * 销售组织ID
     */
    @Schema(description = "销售组织ID")
    private List<String> saleOrganizationIds;

    @Schema(description = "报表导出类型")
    private ReportType reportType;
}
